aa3d5ec09b9d7f1e5f33b3844627f81c658b066e,portlets/knowledge-base-portlet/docroot/WEB-INF/src/com/liferay/knowledgebase/admin/messaging/AdminMessageListener.java,AdminMessageListener,doReceive,#Message#,67

Before Change


		String mailId = message.getString("mailId");
		boolean htmlFormat = message.getBoolean("htmlFormat");

		Set<Long> sent = new HashSet<Long>();

		if (_log.isInfoEnabled()) {
			_log.info(
				"Sending notifications for {mailId=" + mailId +
					", resourcePrimKey=" + resourcePrimKey + "}");
		}

		// Article

		List<Subscription> subscriptions =
			SubscriptionLocalServiceUtil.getSubscriptions(
				companyId, Article.class.getName(), resourcePrimKey);

		sendEmail(
			userId, groupId, resourcePrimKey, portalURL, fromName, fromAddress,
			subject, body, subscriptions, sent, replyToAddress, mailId,
			htmlFormat);

		Article article = ArticleLocalServiceUtil.getLatestArticle(
			resourcePrimKey, WorkflowConstants.STATUS_APPROVED);

		while (article.getParentResourcePrimKey() !=
					ArticleConstants.DEFAULT_PARENT_RESOURCE_PRIM_KEY) {

			article = ArticleLocalServiceUtil.getLatestArticle(
				article.getParentResourcePrimKey(),
				WorkflowConstants.STATUS_APPROVED);

			subscriptions = SubscriptionLocalServiceUtil.getSubscriptions(
				companyId, Article.class.getName(),
				article.getResourcePrimKey());

			sendEmail(
				userId, groupId, resourcePrimKey, portalURL, fromName,
				fromAddress, subject, body, subscriptions, sent, replyToAddress,
				mailId, htmlFormat);
		}

		// Articles

		subscriptions = SubscriptionLocalServiceUtil.getSubscriptions(
			companyId, Article.class.getName(), groupId);

		sendEmail(
			userId, groupId, resourcePrimKey, portalURL, fromName, fromAddress,
			subject, body, subscriptions, sent, replyToAddress, mailId,
			htmlFormat);

		if (_log.isInfoEnabled()) {
			_log.info("Finished sending notifications");

After Change


public class AdminMessageListener extends BaseMessageListener {

	public void doReceive(Message message) throws Exception {
		long companyId = message.getLong("companyId");
		long groupId = message.getLong("groupId");
		long userId = message.getLong("userId");
		long resourcePrimKey = message.getLong("resourcePrimKey");
		String portalURL = message.getString("portalURL");
		String fromName = message.getString("fromName");
		String fromAddress = message.getString("fromAddress");
		String subject = message.getString("subject");
		String body = message.getString("body");
		String replyToAddress = message.getString("replyToAddress");
		String mailId = message.getString("mailId");
		boolean htmlFormat = message.getBoolean("htmlFormat");

		if (_log.isInfoEnabled()) {
			_log.info(
				"Sending notifications for {mailId=" + mailId +
					", resourcePrimKey=" + resourcePrimKey + "}");
		}

		Article article = ArticleLocalServiceUtil.getLatestArticle(
			resourcePrimKey, WorkflowConstants.STATUS_APPROVED);

		SubscriptionSender subscriptionSender = new AdminSubscriptionSender(
			article, portalURL);

		subscriptionSender.setCompanyId(companyId);
		subscriptionSender.setUserId(userId);
		subscriptionSender.setGroupId(groupId);
		subscriptionSender.setFrom(fromName, fromAddress);
		subscriptionSender.setSubject(subject);
		subscriptionSender.setBody(body);
		subscriptionSender.setReplyToAddress(replyToAddress);
		subscriptionSender.setMailId(mailId);
		subscriptionSender.setHtmlFormat(htmlFormat);

		subscriptionSender.notifyPersistedSubscribers(
			Article.class.getName(), groupId);
		subscriptionSender.notifyPersistedSubscribers(
			Article.class.getName(), resourcePrimKey);

		while (article.getParentResourcePrimKey() !=
					ArticleConstants.DEFAULT_PARENT_RESOURCE_PRIM_KEY) {